package cn.com.nou.base.service.bdm;

import cn.com.nou.base.dao.bdm.CourseCategoryMapper;
import cn.com.nou.common.BaseService;
import cn.com.nou.common.builder.PaginationBuilder;
import cn.com.nou.common.entity.NouEnumerationT;
import cn.com.nou.common.entity.Pagination;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
@Transactional
public class CourseCategoryService extends BaseService {
    @Autowired
    CourseCategoryMapper courseCategoryMapper;

    public Pagination getCourseCategoryList(NouEnumerationT nouEnumerationT, int pageNo, int pageSize) {
        PaginationBuilder builder = new PaginationBuilder();
        Pagination page = builder.getPaginating(pageNo, pageSize);
        List<NouEnumerationT> courseCategoryList = courseCategoryMapper.getCourseCategoryList(nouEnumerationT, page.getOffset(), page.getLimit());
        page.setResultList(courseCategoryList);
        page.setTotal(courseCategoryMapper.getCourseCategoryListCount(nouEnumerationT.getType()));
        page.setPageSize(pageSize);
        page.setPageNo(pageNo);
        page.setOffset(page.getOffset());
        page.setLimit(page.getLimit());
        return page;
    }

    public int addCourseCategory(NouEnumerationT nouEnumerationT) {
        courseCategoryMapper.getSameItemCodeOrItemName(nouEnumerationT);
        if (courseCategoryMapper.getSameItemCodeOrItemName(nouEnumerationT).size() == 0) {
            return courseCategoryMapper.addCourseCategory(nouEnumerationT);
        } else {
            return 0;
        }
    }

    public int updateCourseCategory(NouEnumerationT nouEnumerationT) {
        return courseCategoryMapper.updateCourseCategory(nouEnumerationT);
    }

    public int deleteCourseCategory(NouEnumerationT nouEnumerationT) {
        NouEnumerationT nouEnumerationT1 = new NouEnumerationT();
        if (courseCategoryMapper.getUsedEnumCount(nouEnumerationT) ==0 ){
            nouEnumerationT1.setStatus("0");
            nouEnumerationT1.setId(nouEnumerationT.getId());
        }else {
            return 2;
        }
        return courseCategoryMapper.updateCourseCategory(nouEnumerationT1);
    }
}
